
package fab.formatic.web.ws;

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;

import fab.formatic.web.dto.BillTransactionOutput;
import fab.formatic.web.dto.GetBillingDataOutput;
import fab.formatic.web.dto.GetServiceDataOutput;
import fab.formatic.web.dto.GetServiceListOutput;
import fab.formatic.web.dto.GetServiceOutput;
import fab.formatic.web.dto.GetTarrifOutput;
import fab.formatic.web.dto.IncidentInputOutput;
import fab.formatic.web.dto.IncidentTrackingOutput;
import fab.formatic.web.dto.Module;
import fab.formatic.web.dto.ObjectFactory;
import fab.formatic.web.dto.OrderInputOutput;
import fab.formatic.web.dto.ServiceAttr;
import fab.formatic.web.dto.ServiceDataList;
import fab.formatic.web.dto.Trans;
import fab.formatic.web.dto.UpdateBillInfoOutput;
import fab.formatic.web.dto.Package;


/**
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.1.6 in JDK 6
 * Generated source version: 2.1
 * 
 */
@WebService(name = "FABws", targetNamespace = "http://fab/")
@XmlSeeAlso({
    ObjectFactory.class
})
public interface FABws {


    /**
     * 
     * @param serviceID
     * @param password
     * @param adminEmail
     * @return
     *     returns java.lang.String
     */
    @WebMethod
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "login", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.Login")
    @ResponseWrapper(localName = "loginResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.LoginResponse")
    public String login(
        @WebParam(name = "adminEmail", targetNamespace = "")
        String adminEmail,
        @WebParam(name = "password", targetNamespace = "")
        String password,
        @WebParam(name = "serviceID", targetNamespace = "")
        String serviceID);

    /**
     * 
     * @param moduleID
     * @param serviceID
     * @return
     *     returns java.lang.String
     */
    @WebMethod
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "getModuleInfo", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetModuleInfo")
    @ResponseWrapper(localName = "getModuleInfoResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetModuleInfoResponse")
    public String getModuleInfo(
        @WebParam(name = "moduleID", targetNamespace = "")
        String moduleID,
        @WebParam(name = "serviceID", targetNamespace = "")
        String serviceID);

    /**
     * 
     * @param serviceID
     * @return
     *     returns java.lang.String
     */
    @WebMethod
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "getServiceInfo", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetServiceInfo")
    @ResponseWrapper(localName = "getServiceInfoResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetServiceInfoResponse")
    public String getServiceInfo(
        @WebParam(name = "serviceID", targetNamespace = "")
        String serviceID);

    /**
     * 
     * @param accountID
     * @param transType
     * @param module
     * @param sessionID
     * @param transID
     * @param serviceID
     * @param serviceAttr
     * @param paket
     * @return
     *     returns fab.formatic.web.dto.OrderInputOutput
     */
    @WebMethod(operationName = "OrderInput")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "OrderInput", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.OrderInput")
    @ResponseWrapper(localName = "OrderInputResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.OrderInputResponse")
    public OrderInputOutput orderInput(
        @WebParam(name = "accountID", targetNamespace = "")
        String accountID,
        @WebParam(name = "module", targetNamespace = "")
        Module module,
        @WebParam(name = "paket", targetNamespace = "")
        Package paket,
        @WebParam(name = "serviceAttr", targetNamespace = "")
        List<ServiceAttr> serviceAttr,
        @WebParam(name = "serviceID", targetNamespace = "")
        String serviceID,
        @WebParam(name = "sessionID", targetNamespace = "")
        String sessionID,
        @WebParam(name = "transType", targetNamespace = "")
        String transType,
        @WebParam(name = "transID", targetNamespace = "")
        String transID);

    /**
     * 
     * @param accountID
     * @param sessionID
     * @param transID
     * @param serviceID
     * @return
     *     returns java.util.List<fab.formatic.web.dto.Trans>
     */
    @WebMethod(operationName = "OrderTracking")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "OrderTracking", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.OrderTracking")
    @ResponseWrapper(localName = "OrderTrackingResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.OrderTrackingResponse")
    public List<Trans> orderTracking(
        @WebParam(name = "accountID", targetNamespace = "")
        String accountID,
        @WebParam(name = "serviceID", targetNamespace = "")
        String serviceID,
        @WebParam(name = "sessionID", targetNamespace = "")
        String sessionID,
        @WebParam(name = "transID", targetNamespace = "")
        String transID);

    /**
     * 
     * @param accountID
     * @param sessionID
     * @param incidentDesc
     * @param transID
     * @param serviceID
     * @param contactPerson
     * @return
     *     returns fab.formatic.web.dto.IncidentInputOutput
     */
    @WebMethod(operationName = "IncidentInput")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "IncidentInput", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.IncidentInput")
    @ResponseWrapper(localName = "IncidentInputResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.IncidentInputResponse")
    public IncidentInputOutput incidentInput(
        @WebParam(name = "accountID", targetNamespace = "")
        String accountID,
        @WebParam(name = "contactPerson", targetNamespace = "")
        String contactPerson,
        @WebParam(name = "incidentDesc", targetNamespace = "")
        String incidentDesc,
        @WebParam(name = "serviceID", targetNamespace = "")
        String serviceID,
        @WebParam(name = "sessionID", targetNamespace = "")
        String sessionID,
        @WebParam(name = "transID", targetNamespace = "")
        String transID);

    /**
     * 
     * @param accountID
     * @param sessionID
     * @param serviceID
     * @return
     *     returns java.util.List<fab.formatic.web.dto.IncidentTrackingOutput>
     */
    @WebMethod(operationName = "IncidentTracking")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "IncidentTracking", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.IncidentTracking")
    @ResponseWrapper(localName = "IncidentTrackingResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.IncidentTrackingResponse")
    public List<IncidentTrackingOutput> incidentTracking(
        @WebParam(name = "accountID", targetNamespace = "")
        String accountID,
        @WebParam(name = "serviceID", targetNamespace = "")
        String serviceID,
        @WebParam(name = "sessionID", targetNamespace = "")
        String sessionID);

    /**
     * 
     * @param sessionID
     * @param serviceID
     * @return
     *     returns fab.formatic.web.dto.GetServiceOutput
     */
    @WebMethod(operationName = "GetService")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "GetService", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetService")
    @ResponseWrapper(localName = "GetServiceResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetServiceResponse")
    public GetServiceOutput getService(
        @WebParam(name = "serviceID", targetNamespace = "")
        String serviceID,
        @WebParam(name = "sessionID", targetNamespace = "")
        String sessionID);

    /**
     * 
     * @param viewDate
     * @param sessionID
     * @param serviceID
     * @return
     *     returns fab.formatic.web.dto.GetTarrifOutput
     */
    @WebMethod(operationName = "GetTarrif")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "GetTarrif", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetTarrif")
    @ResponseWrapper(localName = "GetTarrifResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetTarrifResponse")
    public GetTarrifOutput getTarrif(
        @WebParam(name = "serviceID", targetNamespace = "")
        String serviceID,
        @WebParam(name = "sessionID", targetNamespace = "")
        String sessionID,
        @WebParam(name = "viewDate", targetNamespace = "")
        XMLGregorianCalendar viewDate);

    /**
     * 
     * @param accountID
     * @param sessionID
     * @param transID
     * @return
     *     returns fab.formatic.web.dto.GetServiceListOutput
     */
    @WebMethod(operationName = "GetServiceList")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "GetServiceList", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetServiceList")
    @ResponseWrapper(localName = "GetServiceListResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetServiceListResponse")
    public GetServiceListOutput getServiceList(
        @WebParam(name = "accountID", targetNamespace = "")
        String accountID,
        @WebParam(name = "sessionID", targetNamespace = "")
        String sessionID,
        @WebParam(name = "transID", targetNamespace = "")
        String transID);

    /**
     * 
     * @param serviceUsedId
     * @param accountID
     * @param sessionID
     * @param transID
     * @return
     *     returns fab.formatic.web.dto.GetServiceDataOutput
     */
    @WebMethod(operationName = "GetServiceData")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "GetServiceData", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetServiceData")
    @ResponseWrapper(localName = "GetServiceDataResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetServiceDataResponse")
    public GetServiceDataOutput getServiceData(
        @WebParam(name = "accountID", targetNamespace = "")
        String accountID,
        @WebParam(name = "serviceUsedId", targetNamespace = "")
        int serviceUsedId,
        @WebParam(name = "sessionID", targetNamespace = "")
        String sessionID,
        @WebParam(name = "transID", targetNamespace = "")
        String transID);

    /**
     * 
     * @param serviceUsedId
     * @param accountID
     * @param sessionID
     * @param transID
     * @return
     *     returns fab.formatic.web.dto.UpdateBillInfoOutput
     */
    @WebMethod(operationName = "UpdateBillInfo")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "UpdateBillInfo", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.UpdateBillInfo")
    @ResponseWrapper(localName = "UpdateBillInfoResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.UpdateBillInfoResponse")
    public UpdateBillInfoOutput updateBillInfo(
        @WebParam(name = "accountID", targetNamespace = "")
        String accountID,
        @WebParam(name = "serviceUsedId", targetNamespace = "")
        int serviceUsedId,
        @WebParam(name = "sessionID", targetNamespace = "")
        String sessionID,
        @WebParam(name = "transID", targetNamespace = "")
        String transID);

    /**
     * 
     * @param accountID
     * @param serviceID
     * @param periode
     * @return
     *     returns java.util.List<fab.formatic.web.dto.GetBillingDataOutput>
     */
    @WebMethod(operationName = "GetBillingData")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "GetBillingData", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetBillingData")
    @ResponseWrapper(localName = "GetBillingDataResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.GetBillingDataResponse")
    public List<GetBillingDataOutput> getBillingData(
        @WebParam(name = "accountID", targetNamespace = "")
        String accountID,
        @WebParam(name = "periode", targetNamespace = "")
        String periode,
        @WebParam(name = "serviceID", targetNamespace = "")
        int serviceID);

    /**
     * 
     * @param accountID
     * @param transID
     * @param serviceDataList
     * @return
     *     returns fab.formatic.web.dto.BillTransactionOutput
     */
    @WebMethod(operationName = "BillTransaction")
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "BillTransaction", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.BillTransaction")
    @ResponseWrapper(localName = "BillTransactionResponse", targetNamespace = "http://fab/", className = "fab.formatic.web.dto.BillTransactionResponse")
    public BillTransactionOutput billTransaction(
        @WebParam(name = "accountID", targetNamespace = "")
        String accountID,
        @WebParam(name = "serviceDataList", targetNamespace = "")
        ServiceDataList serviceDataList,
        @WebParam(name = "transID", targetNamespace = "")
        String transID);

}
